package org.common.utils.fasttest;

import java.net.URL;
import java.security.CodeSource;

/**
 * @author zhouzhibing
 * @date 2024/9/27
 */
public class TestJar {

    public static void test() {
        boolean runningFromJar = isRunningFromJar();
    }



    public static boolean isRunningFromJar() {
        URL url = Main.class.getResource("");
        String protocol = url.getProtocol();
        if("jar".equals(protocol)){
            System.out.println(" jar 中");
            // jar 中
        }else if("file".equals(protocol)){
            System.out.println("非jar 中 （文件class 中）");
            // 非jar 中 （文件class 中）
        }

        String runType = String.valueOf(Main.class.getResource("Main.class"));
        if (runType != null && runType.startsWith("jar:")) {
            System.out.println("代码是通过jar运行的，即通过java -jar 命令在jar包中执行的");
        } else {
            System.out.println("代码不是通过jar运行的，可能是通过开发工具运行的");
        }

        CodeSource codeSource = Main.class.getProtectionDomain().getCodeSource();
        if (codeSource != null) {
            URL location = codeSource.getLocation();
            String protocol1 = location.getProtocol();
            return "file".equals(protocol1) && location.getPath().endsWith(".jar");
        }
        return false;
    }




}
